package com.ruoyi.work.domain;

import java.util.List;
import java.util.Map;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
/**
 * 救援任务对象 tb_work_order
 *
 * @author szm
 * @date 2025-10-21
 */
@Data
@TableName("tb_work_order")
@ApiModel(value = "TbWorkOrder对象", description = "救援任务")
public class TbWorkOrder extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private String id;

    /** 任务编号 */
    @Excel(name = "任务编号")
    @ApiModelProperty("任务编号")
    @TableField(value = "work_no")
    private String workNo;

    /** 设备编号 */
    @Excel(name = "设备编号")
    @ApiModelProperty("设备编号")
    @TableField(value = "equ_no")
    private String equNo;

    /** 车号 */
    @Excel(name = "车号")
    @ApiModelProperty("车号")
    @TableField(value = "train_no")
    private String trainNo;

    /** 救援地点 */
    @Excel(name = "救援地点")
    @ApiModelProperty("救援地点")
    @TableField(value = "location_name")
    private String locationName;

    /** 救援开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "救援开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("救援开始时间")
    @TableField(value = "start_time")
    private Date startTime;

    /** 救援结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "救援结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("救援结束时间")
    @TableField(value = "end_time")
    private Date endTime;

    /** 线路名称 */
    @Excel(name = "线路名称")
    @ApiModelProperty("线路名称")
    @TableField(value = "line_name")
    private String lineName;

    /** 经度 */
    @Excel(name = "经度")
    @ApiModelProperty("经度")
    @TableField(value = "longitude")
    private String longitude;

    /** 维度 */
    @Excel(name = "维度")
    @ApiModelProperty("维度")
    @TableField(value = "latitude")
    private String latitude;

    /** 任务结束人 */
    @Excel(name = "任务结束人")
    @ApiModelProperty("任务结束人")
    @TableField(value = "user_no")
    private String userNo;

    /** 任务结束人姓名 */
    @Excel(name = "任务结束人姓名")
    @ApiModelProperty("任务结束人姓名")
    @TableField(value = "user_name")
    private String userName;

    /** 备注 */
    @Excel(name = "备注")
    @ApiModelProperty("备注")
    @TableField(value = "remark")
    private String remark;

    /** 1 作业中 2结束 99取消 */
    @Excel(name = "1 作业中 2结束 99取消")
    @ApiModelProperty("1 作业中 2结束 99取消")
    @TableField(value = "status")
    private String status;

    /** 请求参数 */
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    @TableField(exist = false)
    private Map<String, Object> params;

    @TableField(exist = false)
    private TbWorkOrderGeneric rescuePlan;

    @TableField(exist = false)
    private List<TbWorkOrderUser> userList;

    @TableField(exist = false)
    private List<TbWorkOrderEqu> equList;

    @TableField(exist = false)
    private List<TbWorkOrderMater> materList;

}
